class Person:
    # 定义Person类，作为人的基本属性和方法的模板
    name = None  # 初始化姓名属性为None
    age = None  # 初始化年龄属性为None


def f1(person):
    """
    函数f1用于更新人的信息。

    参数:
    person: Person类的实例，用于操作和更新该实例的属性。

    返回值:
    无返回值，直接修改传入实例的属性。

    功能:
    打印person实例的内存地址，然后更新person的name属性为"张三"，age属性加1。
    """
    print(f"person的地址 {id(person)}")  # 打印person实例的内存地址
    person.name = "张三"  # 更新name属性为"张三"
    person.age += 1  # 更新age属性，增加1岁

# 对象传递的是地址

# 创建Person类的实例p1，并设置其属性
p1 = Person()  # 创建Person类的实例
p1.name = "李四"  # 设置p1的name属性为"李四"
p1.age = 21  # 设置p1的age属性为21

print(f"p1的地址 {id(p1)} p1.name {p1.name} p1.age {p1.age}")  # 打印p1实例的地址、姓名和年龄
f1(p1)  # 调用f1函数，传入p1实例，更新p1的信息
print(f"p1的地址 {id(p1)} p1.name {p1.name} p1.age {p1.age}")  # 再次打印p1实例的地址、姓名和年龄，以观察变化
